	// api请求
	import {
		getCateApi // 获取艺人分类
	} from '@/api/artist.js'

	const state = {
		classifyData: [], // 艺人分类数据
		addressShow: '', // 是否显示
		eventDetails: {}, // 我的-活动详情

		orderItemData: {}, // 订单一条数据
		
		
		attestationUrl: '', // 实名认证跳转链接




	}
	const mutations = {
		/**
		 * 设置实名认证跳转链接
		 */
		setAttestationUrl(state,value){
			console.log('执行了吗');
			state.attestationUrl = value
		},
		
		
		//艺人分类数据
		setClassifySort(state, value) {
			state.classifyData = value
		},

		/**
		 * 修改是否显示地址弹窗
		 */
		setAddressShow(state, value) {
			state.addressShow = value
		},

		/**
		 * 活动详情
		 */
		setEventDetails(state, value) {
			state.eventDetails = value
		},


		/**
		 * 修改订单一条数据
		 */
		setOrderItemData(state, value) {
			state.orderItemData = value
		},
		



	}
	const actions = {
		/**
		 * 获取艺人分类
		 */
		async getCate(context, val) {
			const res = await getCateApi({})
			if (res.code !== 200) {
				uni.showToast({
					duration: 3000,
					icon: 'none',
					title: res.msg || '请求失败'
				})
				return
			}
			let data = await context.dispatch('initClassifyData', res.data) // 处理艺人分类数据

			context.commit('setClassifySort', data)
			return data
		},
		/**
		 * 处理艺人分类数据
		 */
		initClassifyData(context, val) {
			let data2 = []

			// 定义排序的方法
			function dataSort(val) {
				val.sort(function(a, b) {
					if (a.sort < b.sort) {
						return -1;
					}
					if (a.sort > b.sort) {
						return 1;
					}
					return 0;
				})
			}

			// 先把第一层放入数组
			val.map(res => {
				if (res.parentId === null) {
					data2.push({
						id: res.id,
						title: res.title,
						sort: res.sort,
						parentId: res.parentId,
						img: res.picUrl,
						cateList: []
					})
				}
			})

			// 排序
			dataSort(data2)

			// 再将第二层放入数组
			data2.forEach((res, index) => {
				val.map(res2 => {
					if (res2.parentId === res.id) {
						data2[index].cateList.push(res2)
					}
				})

				// 排序
				dataSort(data2[index].cateList)
			})

			context.commit('setClassifySort', data2)
			return data2
		},

	}
	const getters = {

	}
	export default {
		namespaced: true, // 打开命名空间
		state,
		mutations,
		actions,
		getters
	}